package Analizador_Lexico;

import java.io.IOException;
import java.io.EOFException;
import java.io.RandomAccessFile;

public class Buffer {
	private RandomAccessFile input;

	public Buffer(String source) throws IOException {
		input = new RandomAccessFile(source, "r");
	}


	public char nextChar() throws EOFException {
		int caracterActual=0;

		try {
			caracterActual = input.read();
		}
        catch (IOException e) {
			System.exit(0);
		}

		if (caracterActual == -1)
			throw new EOFException();
		else
			return (char)caracterActual;
	}

	public void retroceder() {
		try {
			input.seek(input.getFilePointer()-1);
		}
        catch (IOException e) {
            System.out.println("ERROR: no se pudo retroceder en el archivo de entrada");
		}
	}

    public void cerrarArchivo(){
        try{
            input.close();
        }catch(IOException e){
            System.out.println("ERROR: no se pudo cerrar el archivo de entrada");
        }
    }
    
}